package com.hy.mydesktop.client.component.factory;

import com.extjs.gxt.ui.client.widget.toolbar.PagingToolBar;
import com.hy.mydesktop.client.component.meta.PagingModelEnum;
import com.hy.mydesktop.shared.persistence.domain.gxt.GxtComponentMetaNodeModel;
/**
 * 
 * <ul>
 * <li>开发作者：冬超</li>
 * <li>设计日期：2010-8-29；时间：下午04:13:44</li>
 * <li>类型名称：PagingFactory</li>
 * <li>设计目的：</li>
 * </ul>
 * <ul>
 * <b>修订编号：</b>
 * <li>修订日期：</li>
 * <li>修订作者：</li>
 * <li>修订原因：</li>
 * <li>修订内容：</li>
 * </ul>
 */
public class PagingFactory {

	public static PagingToolBar createPagingToolBar(
			GxtComponentMetaNodeModel gxtComponentMetaNodeModel) {
		
		return configurePagingToolBar(gxtComponentMetaNodeModel);

	}

	/**
	 * 
	 * 
	 * @param gxtComponentMetaNodeModel
	 * @return
	 */
	private static PagingToolBar configurePagingToolBar(
			GxtComponentMetaNodeModel gxtComponentMetaNodeModel) {

		PagingToolBar paging = createDefaultPagingToolBar();
	
		if (gxtComponentMetaNodeModel.get(PagingModelEnum.HIGHT.name()
				.toLowerCase()) != null) {
			Integer height = (Integer) gxtComponentMetaNodeModel
					.get(PagingModelEnum.HIGHT.name().toLowerCase());
			paging.setHeight((int)height);

		} 
		if (gxtComponentMetaNodeModel.get(PagingModelEnum.WIDTH
				.name().toLowerCase()) != null) {
			Integer width = (Integer) gxtComponentMetaNodeModel
					.get(PagingModelEnum.WIDTH.name().toLowerCase());
			paging.setWidth((int)width);

		}
		if (gxtComponentMetaNodeModel.get(PagingModelEnum.PAGESIZE
				.name().toLowerCase()) != null) {
			Integer pageSize = (Integer) gxtComponentMetaNodeModel
					.get(PagingModelEnum.PAGESIZE.name().toLowerCase());
			paging.setPageSize(pageSize);

		}

		return paging;
	}

	private static PagingToolBar createDefaultPagingToolBar() {

		PagingToolBar paging = new PagingToolBar(50);
		return paging;
	}
}
